package cn.tiansu.eway.common.utils;

import java.io.File;

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

/**
 * log4j日志初始化
 * 
 * @author wupeng
 *
 */
public class Log4jInitializer
{

	/**
	 * log4j日志记录器
	 */
	private final static Logger log = Logger.getLogger(Log4jInitializer.class);
	private static final String fileName = "log4j2.xml";

	private static final String file2Name = "log4j2_file.xml";

	/**
	 * 先加载类路径下面的log4j.xml文件,要是找不到,则加载工程下面的log4j配置文件
	 * 
	 * @param clazz
	 */
	public static void init(String flag)
	{
		try
		{
			String path = System.getProperty("user.dir") + File.separator
					+ "config" + File.separator;

			String fileName = null;
			if (flag == null)
			{
				fileName = path + Log4jInitializer.fileName;
			} else
			{
				fileName = path + Log4jInitializer.file2Name;
			}

			File file = new File(fileName);
			if (file.exists())
			{
				// yyyy-MM-dd
				configureAndWatch(fileName);
			} else
			{
				log.debug("使用工程下面log4j.xml配置文件.");
			}
		} catch (Exception e)
		{
			log.debug("出现异常" + e.getMessage() + ",使用工程下面log4j.xml配置文件.");
		}
	}

	/**
	 * 加载并监听配置文件
	 * 
	 * @param fileName
	 */
	private static void configureAndWatch(File file)
	{
//		// 加载log4j配置文件
//		LoggerContext context = (LoggerContext) LogManager.getContext(false);
//		context.setConfigLocation(file.toURI());
//
//		// 重新初始化Log4j2的配置上下文
//		context.reconfigure();
	}
	
	/**
	 * 加载并监听配置文件
	 * 
	 * @param fileName
	 */
	private static void configureAndWatch(String fileName)
	{
		// 加载log4j配置文件
		DOMConfigurator.configureAndWatch(fileName);
	}

	public static void main(String[] args)
	{
		init(null);
	}
}
